package com.xzzz.irda.auth.server.service;


import java.util.List;
import java.util.Map;

/**
 * 用户实体类接口
 *
 * 实现 UserDetail 接口, 并返回 username/password 即可, 其余字段如不返回则无法在上下文中获取
 *
 * 如需要其他查询用户的方式, 如手机号, 邮箱, 则需要增加字段
 *
 * @author wangyf
 *
 */
public interface UserDetail {

    /**
     * 用户ID
     */
    Long getUserId();

    /**
     * 用户名
     * @return 用户名
     */
    String getUsername();

    /**
     * 密码
     * @return 密码
     */
    String getPassword();

    /**
     * 密码盐值
     * @return 密码盐值
     */
    String getSalt();

    /**
     * 权限
     * @return 权限
     */
    List<String> getPermissions();

    /**
     * 用户元信息
     */
    Map<String,String> getMetadata();
}
